<?php

class ArticleController extends Controller
{
    
//   public $layout='//layouts/fcolumn1';
    
    
	/**
	 * Declares class-based actions.
	 */
	public function actions()
	{
		return array(
			// captcha action renders the CAPTCHA image displayed on the contact page
			'captcha'=>array(
				'class'=>'CCaptchaAction',
				'backColor'=>0xFFFFFF,
			),
			// page action renders "static" pages stored under 'protected/views/site/pages'
			// They can be accessed via: index.php?r=site/page&view=FileName
			'page'=>array(
				'class'=>'CViewAction',
			),
		);
	}




    public function actionIndex()
    {
      $this->layout = Linkmenu::setlayout(10);                                  //Установка шаблона Layout 
 
      $model = Category::model()->findByAttributes(array('url'=>$_GET['cat']));  //Для отображения описания категории (description)   
         
      if(isset($_GET['cat']) && !empty($_GET['cat']))
       {
        $criteria = new CDbCriteria;
        $criteria->condition = ('category_id = :category_id');
        $criteria->params = array('category_id'=>$model->id);
        
       if($model->sort_2 == 1)
            $criteria->order = 'public_time DESC';                                      //Сортировка 1-по убыванию
       if($model->sort_2 == 2)        
            $criteria->order = 'public_time ASC';                                       //Сортировка 2-по возрастанию
      
            if($model->onlytitle == 1)                  //Искать только название статьи и url
            {
                $criteria->select = 'title, url';
            }
            if($model->datetitle == 1)                  //Искать название, дату и url
            {
                $criteria->select = 'public_time, title, url';
            } 
            if($model->choosecontent == 2)              //Выводить предварительное содержание
            {
                $criteria->select = 'public_time, title, url, prev_content';
            }
            if($model->choosecontent == 3)              //Выводить полное содержание 
            {
                $criteria->select = 'public_time, title, full_content';
            }
      
        
            if($model->paginate > 0)                    //Если в таблице Category в пагинаторе указано больше 0, то присваиваем количество страниц
                    {
                      $count=Page::model()->count($criteria);         //Считает количество статей
                      $pages=new CPagination($count);                 //Создаём объект пагинатора   
                      $pages->pageSize = $model->paginate;
                      $pages->applyLimit($criteria);                  //Лимит записей
                    }
        $page = Page::model()->findAll($criteria);                     //Все статьи указанной категории
        
         if($model->meta_title == '')                                                //Если поле meta_title пустое в модели
             {
              $pagetitle = $model->title;                                            //Тогда присвоить заголовку страницы название категории
             }else
                   $pagetitle = $model->meta_title;                                  //Если не пустое, тогда название статьи задаётся вручную в БД
            
             $this->pageTitle = $pagetitle;                                                          //Заголовок страницы
             $this->pageDescription = $model->meta_description;                                  //Добавление мета тэга description в head страницы   
             $this->pageKeywords = $model->meta_keywords;                                         //Добавление мета тэга keywords в head страницы  
              
        
        }else
	    	throw new CHttpException(404, 'Запрашиваемая вами страница не найдена');     //Страница с 404  (Не найдена страница)
            
            
        if(isset($model))
        {
        $this->render('content', array('cat'=>$_GET['cat'],           //Название категории
                                        'model'=>$model,              //Категории
                                        'page'=>$page,                //Статьи
                                        'paginate'=>$pages,           //Пагинатор
                                        ));
         }else
            throw new CHttpException(404, 'Запрашиваемая вами страница не найдена');
              
       
              
    }


    /** ---------------------------------------------------------------------    */
 
    public function actionPage()  //Отображает конкретную страницу в заданной категории
    {
      $model = Page::model()->findByAttributes(array('url'=>$_GET['pagecontent']));  
      
      if($model->meta_title == '')                                           //Если поле meta_title пустое в модели
      {
       $pagetitle = $model->title.' / '.$model->category->title;             //Тогда присвоить заголовку страницы название статьи / название категории
      }else
            $pagetitle = $model->meta_title;                                 //Если не пустое, тогда название статьи задаётся вручную в БД
      
         $this->pageTitle = $pagetitle;                                                          //Заголовок страницы
         $this->pageDescription = $model->meta_description;                                  //Добавление мета тэга description в head страницы   
         $this->pageKeywords = $model->meta_keywords;                                         //Добавление мета тэга keywords в head страницы   
      
      
      $this->render('page', array('model'=>$model,
                                  'category'=>$_GET['category'],          
                                 )); 
    }




}  //end class